home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / A-COMAL Series / (k)aab.d64 / proc.real'fft < prev    next >
Text File  |  2007-02-28  |  1KB  |  27 lines

  1. 0010 // DELETE   "LST.REAL'FFT"
  2. 0020 // LIST TO  "LST.REAL'FFT"
  3. 0030 //
  4. 0040 ╨╥╧├ REAL'FFT(╥┼╞ X(),LOG'2'N#) ├╠╧╙┼─
  5. 0050   // TRANSFORMS A REAL FUNCTION USING A COMPLEX ╞╞╘
  6. 0060   // SEE ┬RIGHAM, ╘HE ╞AST ╞OURIER ╘RANSFORM, ╞IGURE 10-10, P. 169.
  7. 0070   // ON INPUT, X(0:2*N#-1) CONTAINS THE REAL FUNCTION
  8. 0080   // ON OUTPUT, THE CORRESPONDING COMPLEX TRANSFORM IS IN
  9. 0090   // X(0:N#-1)+I*X(N#:2*N#-1), WHERE
  10. 0100   N#:=2^LOG'2'N#
  11. 0110   ─╔═ Y'R(0:N#-1), Y'I(0:N#-1)
  12. 0120   ╞╧╥ K#:=0 ╘╧ N#-1 ─╧
  13. 0130     Y'R(K#):=X(2*K#); Y'I(K#):=X(2*K#+1)
  14. 0140   ┼╬─╞╧╥ K#
  15. 0150   FFT(Y'R(),Y'I(),LOG'2'N#)
  16. 0160   ╞╧╥ K#:=0 ╘╧ N#-1 ─╧
  17. 0170     // THE REAL PART:
  18. 0180     X(K#):=(Y'R(K#)+Y'R(N#-K#))/2
  19. 0190     X(K#):+├╧╙(╨╔*K#*(Y'I(K#)+Y'I(N#-K#))/(2*N#))
  20. 0200     X(K#):-╙╔╬(╨╔*K#*(Y'R(K#)-Y'R(N#-K#))/(2*N#))
  21. 0210     // THE IMAGINARY PART:
  22. 0220     X(K#+N#-1):=(Y'I(K#)-Y'I(N#-K#))/2
  23. 0230     X(K#+N#-1):-╙╔╬(╨╔*K#*(Y'I(K#)+Y'I(N#-K#))/(2*N#))
  24. 0240     X(K#+N#-1):-├╧╙(╨╔*K#*(Y'R(K#)-Y'R(N#-K#))/(2*N#))
  25. 0250   ┼╬─╞╧╥ K#
  26. 0260 ┼╬─╨╥╧├ REAL'FFT
  27.